﻿#pragma once
#include "Mesh.h"

class FInstanceMesh
	: public FMesh
{
public:
	void Draw(const FDrawArg& DrawArg) const override;

	void SetInstanceTranform(const std::vector<glm::mat4>& InstanceTranformArr);

private:

	int32_t InstanceSize = 0;
};


class FInstanceModel final
	: public  FMeshModel
{
	[[nodiscard]] std::shared_ptr<FMaterial> CreateMaterial(ETextureType Type) const override;
	[[nodiscard]] std::shared_ptr<FMesh> CreateMesh() const override;

public:

	void SetInstanceTranform(const std::vector<glm::mat4>& InstanceTranformArr);
};